package org.framework.common.ext.exception;

import org.apache.log4j.Logger;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

public class CommonException extends Exception {

	/** serialVersionUID(long):. */
	private static final long serialVersionUID = -6881316374524785184L;
	
	public static final String EXP_TYPE_FAILING = "failing";
	
	public static final String EXP_TYPE_SUCCESS = "success";
	
	public CommonException() {
		
	}
	
	public CommonException(final Logger log, final String message) {
		log.error(message, this);
	}
	
	public CommonException(final String status, final String message) {
		new Message(status, message);
	}
	
	@JsonAutoDetect
	public static class Message{
		private String status;		
		private String message;
		
		public Message(){
			this("操作成功！");
		}
		
		public Message(final String message){
			this(EXP_TYPE_SUCCESS,message);
		}
		
		public Message(final String status, final String message){
			this.setStatus(status);
			this.setMessage(message);
		}
		
		/**
		 * <p>获取属性status.</p>
		 * @return String
		 * @author chanlong(陈龙)
		 * @date 2014年5月7日  下午9:13:26
		 */
		public String getStatus() {
			return status;
		}

		/**
		 * 设置属性status.
		 * @param status 
		 * @author chanlong(陈龙)
		 * @date 2014年5月7日  下午9:13:26
		 */
		public void setStatus(String status) {
			this.status = status;
		}

		/**
		 * <p>获取属性message.</p>
		 * @return String
		 * @author chanlong(陈龙)
		 * @date 2014年5月7日  下午9:13:26
		 */
		public String getMessage() {
			return message;
		}

		/**
		 * 设置属性message.
		 * @param message 
		 * @author chanlong(陈龙)
		 * @date 2014年5月7日  下午9:13:26
		 */
		public void setMessage(String message) {
			this.message = message;
		}
	}
}
